Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

deBrushOctree Class Reference

#include <BrushOctree.hpp>

Collaboration diagram for deBrushOctree:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 deBrushOctree ()
 ~deBrushOctree ()
deBoolean AddPositions (deVec3d *VertArray, u16 NumVerts, u16 &Offset)
deBoolean AddNormals (deVec3d *VertArray, u16 NumVerts, u16 &Offset)
deBoolean AddVertMats (deVertMat *VertArray, u16 NumVerts, u16 &Offset)
deBoolean AddPolyGetRef (deIndexedPoly *&poly)
deBoolean AddPoly (deIndexedPoly *poly, u16 PosOffset, u16 NormOffset, u16 MatOffset)
deBoolean GetPoly (deIndexedPoly *&poly, long PolyIndex)
deBoolean RemovePoly (const deIndexedPoly *poly)
deBoolean Generate ()
deBoolean Clear ()
deBoolean GetPolysInBox (const deVec3d &Min, const deVec3d &Max, deTArray< deIndexedPoly * > &PolyArray, OctNode *node=NULL)
deBoolean GetAllPolys (deTArray< deIndexedPoly * > *&PolyArray)
deBoolean GetPolyInfo (deIndexedPoly *poly, deVec3d *&PosArray, deVec3d *&NormArray, deVertMat *&VertMatArray)

Private Member Functions

void DestroyNode (OctNode *node)
deBoolean InsertPolyIntoTree (long PolyIndex)
u8 DecideChildNodes (long PolyIndex, OctNode *Node)
OctNodeGetSmallestNodeForAABB (const deAABB &bbox)
deBoolean InsertPolyIntoNode (long PolyIndex, OctNode *Node)
char TriLineIntersect (const deIndexedPoly *T, u16 VertNum, const deVec3d &LinePt1, const deVec3d &LinePt2, deVec3d &Res, deBoolean &HitEdge)
deBoolean PolyPlaneIntersect (const deVec3d &norm, const deDouble &dist, const deIndexedPoly *poly, deVec3d *&ResPair)
deBoolean PolyPolyIntersect (const deIndexedPoly *p1, const deIndexedPoly *p2)
deBoolean MakePlane (long PolyIndex)
deBoolean MakePlane (deIndexedPoly *input)
deBoolean SplitPoly (const deIndexedPoly *input, deIndexedPoly *&out1, deIndexedPoly *&out2)
u16 SplitEdgePos (const HashEdge &Edge, deDouble &Percent)
u16 SplitEdgeNorm (const HashEdge &Edge, const deDouble &Percent)
u16 SplitEdgeMat (const HashEdge &Edge, const deDouble &Percent)
deBoolean SplitAllPolys (deIndexedPoly *splitter)
deBoolean AssembleVertexBuffer (IdeVertexBuffer *pVB)
deBoolean AssembleVertexBufferNoNormals (IdeVertexBuffer *pVB)
deBoolean TriangulateIndices (const deIndexedPoly *Poly, u16 LastVertIndex, u16 *IndexArray3)
void TEST ()

Static Private Member Functions

char FrontmostOctNodeCorner (const deVec3d &norm)
void OctNodeCorner (const OctNode *node, const char Corner, deVec3d &vec)
void OctNodeMidPoint (const OctNode *node, const char MidPoint, deVec3d &vec)
deBoolean OctNodeIntersectsPlane (OctNode *node, const dePlane &plane)
void OctNodeCenter (const OctNode *node, deVec3d &vec)

Private Attributes

OctNodem_Root
deTList< long > m_PolyAddList
deTList< long > m_PolyRemoveList
deTArray< deIndexedPoly * > m_PolyArray
deTArray< deTArray< OctNode * > > m_PolyNodes
deTArray< deVec3dm_Positions
deTArray< deVec3dm_Normals
deTArray< deVertMatm_VertMats
dePlane m_SplittingPlane
deTHashFunctor< u16, HashEdgem_SplitPosHash
deTHashFunctor< u16, HashEdgem_SplitNormHash
deTHashFunctor< u16, HashEdgem_SplitMatHash

Constructor & Destructor Documentation

deBrushOctree::deBrushOctree  
 

deBrushOctree::~deBrushOctree  
 


Member Function Documentation

deBoolean deBrushOctree::AddNormals deVec3d   VertArray,
u16    NumVerts,
u16   Offset
 

deBoolean deBrushOctree::AddPoly deIndexedPoly   poly,
u16    PosOffset,
u16    NormOffset,
u16    MatOffset
 

deBoolean deBrushOctree::AddPolyGetRef deIndexedPoly *&    poly
 

deBoolean deBrushOctree::AddPositions deVec3d   VertArray,
u16    NumVerts,
u16   Offset
 

deBoolean deBrushOctree::AddVertMats deVertMat   VertArray,
u16    NumVerts,
u16   Offset
 

deBoolean deBrushOctree::AssembleVertexBuffer IdeVertexBuffer   pVB [private]
 

deBoolean deBrushOctree::AssembleVertexBufferNoNormals IdeVertexBuffer   pVB [private]
 

deBoolean deBrushOctree::Clear  
 

u8 deBrushOctree::DecideChildNodes long    PolyIndex,
OctNode   Node
[private]
 

void deBrushOctree::DestroyNode OctNode   node [private]
 

char deBrushOctree::FrontmostOctNodeCorner const deVec3d   norm [static, private]
 

deBoolean deBrushOctree::Generate  
 

deBoolean deBrushOctree::GetAllPolys deTArray< deIndexedPoly * > *&    PolyArray
 

deBoolean deBrushOctree::GetPoly deIndexedPoly *&    poly,
long    PolyIndex
 

deBoolean deBrushOctree::GetPolyInfo deIndexedPoly   poly,
deVec3d *&    PosArray,
deVec3d *&    NormArray,
deVertMat *&    VertMatArray
 

deBoolean deBrushOctree::GetPolysInBox const deVec3d   Min,
const deVec3d   Max,
deTArray< deIndexedPoly * > &    PolyArray,
OctNode   node = NULL
 

deBrushOctree::OctNode * deBrushOctree::GetSmallestNodeForAABB const deAABB   bbox [private]
 

deBoolean deBrushOctree::InsertPolyIntoNode long    PolyIndex,
OctNode   Node
[private]
 

deBoolean deBrushOctree::InsertPolyIntoTree long    PolyIndex [private]
 

deBoolean deBrushOctree::MakePlane deIndexedPoly   input [private]
 

deBoolean deBrushOctree::MakePlane long    PolyIndex [private]
 

void deBrushOctree::OctNodeCenter const OctNode   node,
deVec3d   vec
[inline, static, private]
 

void deBrushOctree::OctNodeCorner const OctNode   node,
const char    Corner,
deVec3d   vec
[static, private]
 

deBoolean deBrushOctree::OctNodeIntersectsPlane OctNode   node,
const dePlane   plane
[static, private]
 

void deBrushOctree::OctNodeMidPoint const OctNode   node,
const char    MidPoint,
deVec3d   vec
[static, private]
 

deBoolean deBrushOctree::PolyPlaneIntersect const deVec3d   norm,
const deDouble   dist,
const deIndexedPoly   poly,
deVec3d *&    ResPair
[private]
 

deBoolean deBrushOctree::PolyPolyIntersect const deIndexedPoly   p1,
const deIndexedPoly   p2
[private]
 

deBoolean deBrushOctree::RemovePoly const deIndexedPoly   poly
 

deBoolean deBrushOctree::SplitAllPolys deIndexedPoly   splitter [private]
 

u16 deBrushOctree::SplitEdgeMat const HashEdge   Edge,
const deDouble   Percent
[private]
 

u16 deBrushOctree::SplitEdgeNorm const HashEdge   Edge,
const deDouble   Percent
[private]
 

u16 deBrushOctree::SplitEdgePos const HashEdge   Edge,
deDouble   Percent
[private]
 

deBoolean deBrushOctree::SplitPoly const deIndexedPoly   input,
deIndexedPoly *&    out1,
deIndexedPoly *&    out2
[private]
 

void deBrushOctree::TEST   [private]
 

deBoolean deBrushOctree::TriangulateIndices const deIndexedPoly   Poly,
u16    LastVertIndex,
u16   IndexArray3
[private]
 

char deBrushOctree::TriLineIntersect const deIndexedPoly   T,
u16    VertNum,
const deVec3d   LinePt1,
const deVec3d   LinePt2,
deVec3d   Res,
deBoolean   HitEdge
[private]
 


Member Data Documentation

deTArray<deVec3d> deBrushOctree::m_Normals [private]
 

deTList<long> deBrushOctree::m_PolyAddList [private]
 

deTArray<deIndexedPoly*> deBrushOctree::m_PolyArray [private]
 

deTArray<deTArray<OctNode*> > deBrushOctree::m_PolyNodes [private]
 

deTList<long> deBrushOctree::m_PolyRemoveList [private]
 

deTArray<deVec3d> deBrushOctree::m_Positions [private]
 

OctNode* deBrushOctree::m_Root [private]
 

deTHashFunctor<u16,HashEdge> deBrushOctree::m_SplitMatHash [private]
 

deTHashFunctor<u16,HashEdge> deBrushOctree::m_SplitNormHash [private]
 

deTHashFunctor<u16,HashEdge> deBrushOctree::m_SplitPosHash [private]
 

dePlane deBrushOctree::m_SplittingPlane [private]
 

deTArray<deVertMat> deBrushOctree::m_VertMats [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Sep 12 20:13:24 2005 for Destiny3D by doxygen1.3-rc3